package com.tree.backend.entity.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 部门预算配置表
 * </p>
 */
@Getter
@Setter
@ToString
@TableName("budget_config")
public class BudgetConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 预算配置唯一标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 部门ID
     */
    private Long departmentId;

    /**
     * 成本项目ID
     */
    private Long costItemId;

    /**
     * 预算年份
     */
    private Integer budgetYear;

    /**
     * 预算周期：1-月度 2-季度 3-年度
     */
    private Byte budgetCycle;

    /**
     * 周期序号：1-12月 1-4季度 1-年度
     */
    private Byte cycleNumber;

    /**
     * 预算金额
     */
    private BigDecimal budgetAmount;

    /**
     * 已使用金额
     */
    private BigDecimal usedAmount;

    /**
     * 剩余预算金额
     */
    private BigDecimal remainingAmount;

    /**
     * 预警阈值百分比
     */
    private BigDecimal alertThreshold;

    /**
     * 是否已预警：0-否 1-是
     */
    private Byte isAlert;

    /**
     * 状态：0-停用 1-启用
     */
    private Byte status;

    /**
     * 创建人用户ID
     */
    private Long creatorId;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
